package cn.kjcoder.redis.task;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.cache.CacheProperties;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;

/**
 * @author hkj
 * @email 1349091387@qq.com
 * @date 2022/1/21
 * 源码允许修改，并且本人十分乐意有 大佬 来对代码进行 随 意 调 教
 **/
@Service
@Slf4j
public class TaskService {

    @Autowired
    private RedisTemplate redisTemplate;

    public static final String BLACKLIST_KEY = "blacklist";

    /**
     * 先将数据库中的数据刷新到redis缓存中
     */
    @PostConstruct
    public void init(){
        log.info("数据初始化");
        List<Integer> list = this.blackList();
        //循环遍历集合并将集合中的所有元素存入redis中的set集合中
        list.forEach(t -> this.redisTemplate.opsForSet().add(BLACKLIST_KEY,t));
    }

    /**
     * 模拟100个黑名单数据
     */
    public List<Integer> blackList() {
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
            list.add(i);
        }
        return list;
    }


}
